require(["config"],function(){
	require(["jquery","template","header","zoom","fly","cookie"],function($,template){
		
		function Detail(){
			this.render();
		}
		Detail.prototype = {
			constructor: Detail,
			// 渲染详情页面数据
			render: function() {
				$.ajax("http://rap2api.taobao.org/app/mock/data/458353")
					.done($.proxy(this.handleData, this));//成功时执行的函数
			},
			// 处理ajax获取到的数据
			handleData: function(data){
				//获取使用的数据
				data = data.res_body.data;
				// 渲染
				var html = template("detail_template",data);
				$(".content_box").prepend(html);
				// 放大镜
				this.zoom();
				// 注册事件监听
				this.addListener();
			},
			//放大镜
			zoom: function() {
				$(".middle-zoom").elevateZoom({
					gallery:'gal1', 
					cursor: 'pointer', 
					//点击是将它的class属性设置为active
					galleryActiveClass: 'active'
				});
			},
			
			//添加到购物车 
			addListener: function() {
				// 添加到购物车
				$(".btn-buy").click(this.addToCartHandler);
			},
			//处理数据
			addToCartHandler: function(event){
				var currentProduct = {
					id: $(".prod_id").text(),
					title: $(".prod_title").text(),
					img: $("#gal1 img:first").attr("src"),
					price: $(".prod_price").text(),
					amount:1
				};
				console.log(currentProduct);
				/* 判断是否已选购过当前商品 */
				$.cookie.json = true;//配置自动在js值与json文本之间相互转换
				//从cookie中查询是否存在
				var products = $.cookie("cart") || [];
				// 判断是否已有选购
				var has = products.some(function(prod) {
					if (prod.id == currentProduct.id) { // 已有选购商品
						prod.amount++; // 数量自增
						return true;
					}
					return false;
				});
				if (!has) // 未选购
					products.push(currentProduct);

				// 保存购物车：存回cookie
				// 数据结构：[{id,title,img,price,amout},{id,title,img,price,amout},{id,title,img,price,amout}]
				$.cookie("cart", products, {expires: 10, path:"/"});

				
				// 抛物线效果
				var end = $(".bag_left").offset(); // 终点坐标
				end.top -= $(window).scrollTop();//鼠标滚动距离
				var start = {top: event.pageY - $(window).scrollTop(), left: event.pageX}; // 起点坐标
				var flyer = $("#gal1 img:first").clone(); // 创建一个抛物线运动的元素（这里是克隆方式）
				// 运动
				flyer.fly({
					start, // 运动起点坐标
					end, // 运动终点坐标
					onEnd: function() { // 结束后，将资源销毁
						this.destroy();
					}
				});
	
				return false; // 阻止冒泡和阻止默认
			}
		}
		new Detail();
		
	});
	
});
